Skip to content

Feature/auto sending email#603

Merged
Toksi86 merged 9 commits intodevfrom
feature/auto_sending_email
Feb 11, 2026
Merged

Feature/auto sending email#603
Toksi86 merged 9 commits intodevfrom
feature/auto_sending_email

Conversation

@Toksi86
Copy link
Collaborator

@Toksi86 Toksi86 commented Feb 11, 2026

Авторассылки: трекинг активности и сценарии неактивных участников

Описание изменений

Добавлен трекинг активности для JWT:

  • last_login обновляется при TokenObtainPair.
  • last_activity обновляется в JWTAuthentication с троттлингом 15 минут и best-effort (ошибки cache/DB не ломают auth).

В CustomUser добавлено поле last_activity (+ миграция).

Реализованы селекторы неактивных участников программы по правилу max(last_login, last_activity) < datetime_started (или отсутствие активности).

Добавлены 2 недостающих сценария рассылки:

  • (дата регистрации на программу) + 3 дня для неактивных участников.
  • (дата окончания регистрации) + 3 дня для неактивных участников.

Унифицировано описание/рендеринг сценариев, обновлены тексты писем и темы в формате {program_name}: важное сообщение.

Добавлено логирование отправок через MailingScenarioLog и защита от повторной отправки в рамках даты запуска.

Обновлена админка пользователей: добавлен last_activity, улучшена работа с правами/формами.

Тестирование

Добавлены тесты на:

  • Обновление last_login при получении JWT-токена (TokenObtainPair)
  • Обновление last_activity с троттлингом (повторный запрос в окне троттлинга не меняет дату)
  • Аутентификация не падает, если недоступен cache при обновлении активности
  • Аутентификация не падает, если недоступна БД при обновлении активности
  • Селектор: выбор неактивных участников программы
  • Селектор: выбор неактивных участников, зарегистрированных в конкретную дату

Все новые и старые тесты пройдены.

@Toksi86 Toksi86 requested a review from TThanos3000 February 11, 2026 06:49
@Toksi86 Toksi86 merged commit dd1cd4e into dev Feb 11, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants